Simple Request
以下の条件を全て満たすものをSimple Requestと呼ぶ
methodは以下のいずれか
request headerに以下のもの以外のfieldが含まれていない
Content-typeの値は以下のいずれか
なぜSimple RequestにPOSTが含まれているのか?
歴史的経緯を知らないと以下のように推測できるmrsekut.icon
SOP云々は、そもそもCSRF対策のためにある
CSRFは、resopnseはどうでもよくて、requestさえ完了すれば攻撃できる
ということは、PUTやDELETEは、CSRF攻撃できる
だから、simple requestにPUTやDELETEは含まれていない
ここまではわかるmrsekut.icon
しかし同様に、POSTもreqeustさえできればCSRFのリスクがあるのではないか?
なぜsimple requestにPOSTを含めっちゃているのか?
(Simple Requestの)POSTはそもそも、SOPが適用されていない
だからSOPがあってもなくても(Simple Requestの)POSTはできる
例えば、<form>の送信がこれに該当する
だから、SOPとかCORSとか関係なく、server側でCSRF対策やっとけよ、という前提がある
その前提があるため、(Simple Requestの)POSTも含まれている